package interview;

public class sougou02 {
    public static int getHouses(int t, int[] xa){
        int res = 2;// 这里的情况就就一个房屋最左边的情况，一个房屋最右边的情况，也就是没有考虑两房屋中间时必有的情况
        double[] right = new double[xa.length / 2];// 每个房间的右边界
        double[] left = new double[xa.length / 2];// 每个房间的左边界
        int index = 0;
        for (int i = 0; i < xa.length; i++){
            if ( i % 2 == 0){// 这里的i就是房屋的坐标
                left[index] = xa[i] - (double)xa[i + 1] / 2;// 因为i为奇数的时候表示的是宽度
                right[index] = xa[i] + (double)xa[i + 1] / 2;
                index++;
            }
        }

        for (int i = 0; i < xa.length / 2 - 1; i++){// 这里的xa.length  2- 1就是房子间有的空位 比如两栋房子就只有一个空位，三栋房子就有两个空
            if (right[i] + t < left[i + 1]){
                res += 2;
            }else if (right[i] + t == left[i + 1]){
                res++;
            }
//            double index2 = left[i] + t;
//            if (left[i] + t < right[i + 1]){// 放下房子后还有空，可以靠左和靠右，也就是说原来两座房子中间的位置
//                res += 2;
//            }else if (left[i] + t == right[i + 1]){// 中间刚好能放一个位置，没有空余的空间了
//                res++;
//            }
        }
        return res;
    }

    public static void main(String[] args) {
        System.out.println(getHouses(2, new int[]{-1, 4, 5, 2,9,2}));
    }
}
